/*
 * Copyright @ 苏州瑞云信息技术有限公司 All rights reserved.
 */
package work.hutool.util;

import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;

import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @author Sakura Shen
 * hutool的StrUtil用于字符串工具
 * @date 2021/8/24
 */
public class StringUtilTest {

    public static void main(String[] args) {

        // 使用占位符进行字符串拼接
        String a = StrUtil.format("AAA{} BBBBB{} AAA","111","222");

        // isEmpty只判断是否为null或者空字符串（""）
        // isBlank则会把不可见字符也算做空
        // Empty 是否为空，空的定义是null,""
        // Blank 是否为空白，空白的定义是null,"",不可见字符（如空格）
        boolean b1 = StrUtil.isEmpty(" ");
        boolean b2 = StrUtil.isBlank(" ");
        System.out.println(StrUtil.isEmpty(""));
        System.out.println(StrUtil.isEmpty("  "));
        System.out.println(StrUtil.isBlank("  "));

        // nullToEmpty() 如果参数是null 转化为 ""(也就是Empty)
        String  aa = StrUtil.nullToEmpty("AAA");
        String  aa1 = StrUtil.nullToEmpty(null);
        System.out.println(aa);
        System.out.println("nullToEmpty中的empty:" + aa1);


        // 把数组或者list使用分割符号连接起来
        String joinStr = StrUtil.join("----" , Stream.of("a","b").collect(Collectors.toList()));
        System.out.println("字符串拼接的结果: " + joinStr);


        // 相比于String的subString 解决了数组越界和顺序错位的问题
        // StrUtil.sub() 还支持负数, -1表示最后一个字符
        String c0 = StrUtil.sub("123456789", 2, 4);
        String c1 = StrUtil.sub("123456789", 4, 2);
        String c2 = StrUtil.sub("123456789", 2, -1);
        String c3 = StrUtil.subWithLength("123456789",2,2);

        // removeSuffix() 去掉后缀
        String fileName = StrUtil.removeSuffix("pretty_girl.jpg", ".jpg");
        System.out.println(fileName);

        System.out.println("AA");

    }
}
